<?php

namespace App\Models;

use App\Models\Common\Wechat;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;

/**
 * 代理业务
 * Class Proxy
 * @package App\Models
 */
class ProxyMember
{

    /**
     * 查询代理二维码（生成二维码）
     * @param $we_id
     * @return string
     */
    public static function qrCode($we_id)
    {
        $app = Wechat::officialAccount();

        // 先检查这个用户是否是代理，如果已经是代理直接返回这个url
        $url = DB::table('proxy_users')->where('we_id','=',$we_id)->value('proxy_code');
        if($url){
            return $url;
        }

        // 如果这个用户还不是代理，生成一个永久二维码，前缀为'proxy_'.we_id
        $result = $app->qrcode->forever('proxy_' . $we_id);
        $url = $app->qrcode->url($result['ticket']);
        DB::table('proxy_users')->insert([
            'we_id'=>$we_id,
            'proxy_code'=>$url,
        ]);
        return $url;
    }

    /**
     * 计算抽成比例
     * @param $date string 推荐时间
     * @return int 返利比例
     */
    public static function proportion($date)
    {
        $time = strtotime($date);

        if($time > strtotime(date("Y-m-d H:i:s", strtotime("-1 year")))){
            // 一年内10%
            return 0.1;
        }elseif($time > strtotime(date("Y-m-d H:i:s", strtotime("-2 year")))){
            // 两年内5%
            return 0.05;
        }else{
            return 0;
        }
    }


    /**
     * 返利提醒
     * @param $from string 发送人(nickname)
     * @param $price int 金额（分）
     * @param $to int 接收人(we_id)
     */
    public static function rebateNotice($from,$price,$to)
    {
        Log::debug('rebateNotice',['from'=>$from,'price'=>$price,'to'=>$to]);
        $openid = DB::table('lottery_users')->where('we_id','=',$to)->value('openid');
        Log::debug('openid',['openid'=>$openid]);
        $app = Wechat::officialAccount();
        // 通知给代理
        $app->customer_service
            ->message('您邀请的用户'.$from.'在来飞网产生消费，已为您增加'.($price/100.00).'元返利')
            ->to($openid)->send();

        // 查询余额
        $wallet = DB::table('proxy_users')->where('we_id','=',$to)->value('wallet');
        $result = '您当前的余额为'.($wallet/100.00).'元,';
        if($wallet > 100){
            $result .= '点击<a href="weixin://bizmsgmenu?msgmenucontent=提现&msgmenuid=-1">提现</a>';
        } else {
            $result .= '余额1元可提现';
        }

        $app->customer_service->message($result)->to($openid)->send();

    }


}
